iT邦幫忙

2023 iThome 鐵人賽

DAY 20
0
AI & Data

紮實的ML機器學習原理~打造你對資料使用sklearn的靈敏度系列 第 20

DAY 20 「GPyOpt:一個用於貝葉斯優化的Python庫」來做分類啦~

  • 分享至 

  • xImage
  •  

基於 GPy(高斯過程庫)的優化方法~

適用於黑盒函數優化問題,特別是在高維和噪聲環境下

pip install gpyopt
import GPyOpt
from GPyOpt.methods import BayesianOptimization

# 定義目標函數
def objective(x):
    return (x**2).sum()

# 定義搜索空間
space = [{'name': 'x', 'type': 'continuous', 'domain': (-5,5)}]

# 創建貝葉斯優化對象
optimizer = BayesianOptimization(f=objective, domain=space, model_type='GP')

# 進行優化
optimizer.run_optimization(max_iter=10)

# 輸出結果
print(f'Optimized value: {optimizer.fx_opt}')
print(f'Optimized point: {optimizer.x_opt}')

在這個案例中,我們首先導入了 GPyOpt 庫,並定義了一個簡單的目標函數 objective,這里的目標是最小化 x^2 的和。然後,我們定義了搜索空間,這里是一個連續型變量 x 的範圍為 -5 到 5。

接著,我們創建了一個貝葉斯優化對象 optimizer,並使用 BayesianOptimization 類進行初始化,將目標函數、搜索空間和模型類型(這里是高斯過程模型)作為參數傳遞。

最後,我們調用 optimizer.run_optimization 進行優化,設置了最大叠代次數為 10 次。輸出了最優值和最優點。

  • 使用時機:
    黑盒函數優化:當目標函數是一個黑盒函數,無法直接觀測其數學形式時,可以考慮使用貝葉斯優化。
    高維空間:在高維空間中搜索最優解時,傳統的優化方法可能效率低下,而貝葉斯優化在高維空間中表現較好。
    噪聲環境:貝葉斯優化對噪聲魯棒,能夠在含有一定程度噪聲的優化問題中表現良好。

/images/emoticon/emoticon01.gif白話來說如果你面臨一個黑盒函數優化在高維度和噪聲環境下,可以考慮使用 GPyOpt 進行貝葉斯優化~


上一篇
DAY 19 「四個庫(HyperOpt、Optuna、GPyOpt、Scikit-Optimize)」來做超參數優化啦~
下一篇
DAY 21 「Scikit-Optimize 是一個用於黑盒優化的 Python 庫」來做分類啦~
系列文
紮實的ML機器學習原理~打造你對資料使用sklearn的靈敏度30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言